/*
 Navicat Premium Dump SQL

 Source Server         : 本机电脑
 Source Server Type    : MySQL
 Source Server Version : 80040 (8.0.40)
 Source Host           : localhost:3306
 Source Schema         : recevie_new

 Target Server Type    : MySQL
 Target Server Version : 80040 (8.0.40)
 File Encoding         : 65001

 Date: 20/02/2025 22:47:07
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
  `class_id` int NOT NULL AUTO_INCREMENT,
  `class_name` varchar(50) NOT NULL COMMENT '班级名称',
  `major` varchar(100) DEFAULT NULL COMMENT '专业',
  `grade` int NOT NULL COMMENT '年级',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='班级信息表';

-- ----------------------------
-- Records of class
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
  `course_id` int NOT NULL AUTO_INCREMENT,
  `course_no` varchar(20) NOT NULL COMMENT '课程编号',
  `course_name` varchar(100) NOT NULL COMMENT '课程名称',
  `semester` char(11) NOT NULL COMMENT '学期',
  `credit` tinyint DEFAULT NULL COMMENT '学分',
  `eval_method` char(4) DEFAULT NULL COMMENT '考核方式',
  `teacher_no` varchar(20) NOT NULL COMMENT '授课教师',
  `class_id` int NOT NULL COMMENT '所属班级',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态：0-已结课，1-进行中',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`course_id`),
  UNIQUE KEY `uk_course` (`course_no`,`semester`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='课程信息表';

-- ----------------------------
-- Records of course
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for course_schedule
-- ----------------------------
DROP TABLE IF EXISTS `course_schedule`;
CREATE TABLE `course_schedule` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `course_id` int NOT NULL COMMENT '课程ID',
  `weeks` varchar(100) DEFAULT NULL COMMENT '上课周次如1-9,12',
  `classroom` varchar(50) DEFAULT NULL COMMENT '教室',
  `day` tinyint(1) DEFAULT NULL COMMENT '星期几：1-7',
  `start_time` tinyint DEFAULT NULL COMMENT '第几节开始：1-12',
  `duration` tinyint DEFAULT '2' COMMENT '课程时长(节数)',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_course` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='课程时间安排表';

-- ----------------------------
-- Records of course_schedule
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for job
-- ----------------------------
DROP TABLE IF EXISTS `job`;
CREATE TABLE `job` (
  `id` int NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL COMMENT '作业标题',
  `description` text COMMENT '作业描述',
  `attachment_url` varchar(255) DEFAULT NULL COMMENT '作业附件URL',
  `teacher_no` varchar(20) NOT NULL COMMENT '发布教师工号',
  `student_no` varchar(20) NOT NULL COMMENT '学生学号',
  `class_id` int NOT NULL COMMENT '班级ID',
  `content` text COMMENT '学生提交的作业说明',
  `submit_url` varchar(255) DEFAULT NULL COMMENT '学生提交的文件URL',
  `submit_time` datetime DEFAULT NULL COMMENT '提交时间',
  `score` int DEFAULT NULL COMMENT '得分',
  `comment` text COMMENT '教师评语',
  `review_time` datetime DEFAULT NULL COMMENT '批改时间',
  `due_date` datetime NOT NULL COMMENT '截止日期',
  `type` tinyint DEFAULT '1' COMMENT '作业类型：1-实验，2-作业，3-测试',
  `status` tinyint(1) DEFAULT '0' COMMENT '状态：0-未提交，1-已提交待批改，2-已批改',
  `is_late` tinyint(1) DEFAULT '0' COMMENT '是否迟交：0-否，1-是',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_student` (`student_no`),
  KEY `idx_teacher` (`teacher_no`),
  KEY `idx_class` (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='作业表';

-- ----------------------------
-- Records of job
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for notification
-- ----------------------------
DROP TABLE IF EXISTS `notification`;
CREATE TABLE `notification` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL COMMENT '通知标题',
  `content` text NOT NULL COMMENT '通知内容',
  `type` tinyint DEFAULT '0' COMMENT '类型：0-普通通知，1-作业通知，2-成绩通知',
  `target_type` tinyint DEFAULT '0' COMMENT '目标类型：0-全体，1-教师，2-学生，3-班级',
  `target_id` varchar(50) DEFAULT NULL COMMENT '目标ID',
  `creator` varchar(20) DEFAULT NULL COMMENT '创建人工号',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态：0-已撤回，1-有效',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='系统通知表';

-- ----------------------------
-- Records of notification
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `studentno` varchar(20) NOT NULL,
  `name` varchar(8) DEFAULT NULL,
  `pinyin` varchar(20) DEFAULT NULL COMMENT '姓名的拼音',
  `password` varchar(20) DEFAULT NULL,
  `class_id` int NOT NULL COMMENT '所属班级',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态：0-禁用，1-正常',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`studentno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='学生信息表';

-- ----------------------------
-- Records of student
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
  `teacherno` varchar(20) NOT NULL,
  `name` varchar(8) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  `level` tinyint DEFAULT NULL COMMENT '教师级别：0-普通教师，1-管理员',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`teacherno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='教师信息表';

-- ----------------------------
-- Records of teacher
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for teacher_class
-- ----------------------------
DROP TABLE IF EXISTS `teacher_class`;
CREATE TABLE `teacher_class` (
  `id` int NOT NULL AUTO_INCREMENT,
  `teacher_no` varchar(20) NOT NULL COMMENT '教师工号',
  `class_id` int NOT NULL COMMENT '班级ID',
  `role_type` tinyint DEFAULT '1' COMMENT '角色类型：1-班主任，2-任课教师',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态：0-无效，1-有效',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_del` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_teacher_class` (`teacher_no`,`class_id`,`role_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='教师班级关联表';

-- ----------------------------
-- Records of teacher_class
-- ----------------------------
BEGIN;
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;
